Much of the content downloaded from the Internet today includes video and/or audio content. This type of downloaded content is generally characterized by its being streaming content, requiring that the content be downloaded continuously without interruption in order to provide enjoyable user experience. In some cases, the video and/or the audio are played “live” on a user's device while being downloaded while in other cases, the download content may be first stored in the memory of the user's device for later playing. Whichever may be the case, the content should be downloaded without suffering any substantial interruptions so as to not affect user experience.
Most Internet traffic today includes the use of TCP (transmission control protocol) to transport the streaming content from a server to a client (the user's device) over a communications network. The longer the streaming content is downloaded (e.g. long movies), the greater a probability that the TCP traffic may be interrupted by server failure or migration (i.e., a change in the server's physical or network address).
Various migration/recovery solutions to prevent or recover interrupted TCP traffic exist. One solution, such as the IETF TCP Service Migration Protocol (TSMP) draft, utilizes a proxy—an extra server closer to the user client than the streaming server—to provide the streaming content. All the streaming content passes through the proxy regardless of the streaming server functioning properly. Another solution, such as SockMi, requires changes to the user's browser or other client module (e.g. kernel module), or to the server kernel module. A third solution, such as the Migrate Internet Mobility Project, requires a new session-layer library at the user-level that manages session-based network activity and resource allocation for applications.